/* Copyright (c) 2015 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

//
//  GTLFitnessDataPoint.h
//

// ----------------------------------------------------------------------------
// NOTE: This file is generated from Google APIs Discovery Service.
// Service:
//   Fitness (fitness/v1)
// Description:
//   Google Fit API
// Documentation:
//   https://developers.google.com/fit/rest/
// Classes:
//   GTLFitnessDataPoint (0 custom class methods, 8 custom properties)

#if GTL_BUILT_AS_FRAMEWORK
  #import "GTL/GTLObject.h"
#else
  #import "GTLObject.h"
#endif

@class GTLFitnessValue;

// ----------------------------------------------------------------------------
//
//   GTLFitnessDataPoint
//

// Represents a single data point, generated by a particular data source. A data
// point holds a value for each field, an end timestamp and an optional start
// time. The exact semantics of each of these attributes are specified in the
// documentation for the particular data type.
// A data point can represent an instantaneous measurement, reading or input
// observation, as well as averages or aggregates over a time interval. Check
// the data type documentation to determine which is the case for a particular
// data type.
// Data points always contain one value for each field of the data type.

@interface GTLFitnessDataPoint : GTLObject

// Used for version checking during transformation; that is, a datapoint can
// only replace another datapoint that has an older computation time stamp.
@property (nonatomic, retain) NSNumber *computationTimeMillis;  // longLongValue

// The data type defining the format of the values in this data point.
@property (nonatomic, copy) NSString *dataTypeName;

// The end time of the interval represented by this data point, in nanoseconds
// since epoch.
@property (nonatomic, retain) NSNumber *endTimeNanos;  // longLongValue

// Indicates the last time this data point was modified. Useful only in contexts
// where we are listing the data changes, rather than representing the current
// state of the data.
@property (nonatomic, retain) NSNumber *modifiedTimeMillis;  // longLongValue

// If the data point is contained in a dataset for a derived data source, this
// field will be populated with the data source stream ID that created the data
// point originally.
@property (nonatomic, copy) NSString *originDataSourceId;

// The raw timestamp from the original SensorEvent.
@property (nonatomic, retain) NSNumber *rawTimestampNanos;  // longLongValue

// The start time of the interval represented by this data point, in nanoseconds
// since epoch.
@property (nonatomic, retain) NSNumber *startTimeNanos;  // longLongValue

// Values of each data type field for the data point. It is expected that each
// value corresponding to a data type field will occur in the same order that
// the field is listed with in the data type specified in a data source.
// Only one of integer and floating point fields will be populated, depending on
// the format enum value within data source's type field.
@property (nonatomic, retain) NSArray *value;  // of GTLFitnessValue

@end
